/**
 * yiqihao(一起好商务股份有限公司) copyright 
 */
package com.p2p.funds.model;

import java.util.HashMap;
import java.util.Map;

/**
 *	宝付接口配置对象
 *
 * @author leiruiqi@yiqihao.com
 *
 * 2015年2月4日 下午2:38:53
 */
public class BaofuConfig {

	
	public enum BaofuApplyKey{
		MemberID,//商户 ID 签约提供 是 商户签约后通过邮件或者其他方式给予商户,测试商户号：100000178
		TerminalID,//终端 ID 签约提供
		InterfaceVersion,//接口版本 文档提供 是 现在版本号为固定 4.0
		KeyType,//加密类型 文档提供 是 固定数值：1
		PayID,//功能 ID 文档提供 是 参考《附录：产品功能》注：若选择全部银行则为空字符串，选择全部银行即跳转宝付收银台选择银行
		TradeDate,//订单日期 字符串 是 14 位定长。
		TransID,//订单号 字符串 是 唯一订单号，8-20 位字母和数字
		OrderMoney,//订单金额 数字 是 单位：分.例：1 元=100 分
		/*ProductName,//商品名称 字符串 否 须 URL 编码，长度不超过 64 位
		Amount,//商品数量 数字 否 无特殊需求则设置为 1
		Username,//用户名称 字符串 否 须 URL 编码,长度不超过 64 位
		AdditionalInfo,//附加字段 字符串 否 须 URL 编码，长度不超过 128 位
*/		NoticeType,//通知类型 文档提供 是 固定数字：1
		PageUrl,// 页面返回地址 字符串 是 URL 编码
		ReturnUrl,//交易通知地址 字符串 是 须 URL 编码，长度不超过 255 位
		
		/**
		 * 将交易关键数据进行拼接，经 MD5 加密生成
并转化为小写的 32 位加密字符串。
规则如下：
{参数}代表参数的具体值
MD5({MerchantID}|{PayID}|{TradeDate}|{
TransID}|{OrderMoney}|{PageUrl}|{Retur
nUrl}|{NoticeType}|{密钥})
测试密钥： abcdefg

		 */
		Signature,//交易签名 规则生成 是 将交易关键数据进行拼接，经 MD5 加密生成
		;
	}
	
	public enum BaofuReceiveKey{
		MemberID,// 商户 ID 保留 等同于商户提交的商户号 
		TerminalID,//终端 ID 保留 等同于商户提交的终端号 
		TransID,// 订单 ID 保留 等同于商户提交的订单,宝付不支持商户提交重复订单号，对重复订单号,将直接提示订单已经提交
		Result,// 支付结果 文档提供 代表与宝付的交易是否成功 1：成功 0：失败 可查看《附录：支付结果》 宝付互联网支付网关接口文档机密文件 第 8 页 共 15 页
		
		ResultDesc,// 订单结果 文档提供 代表该订单处理的结果成功与否,跟交易结果一起判断该笔订单的最终状态,查看附录：《附录：支付结果描述》
		FactMoney,// 成功金额 数值 单位：分 .银行订单时验证成功金额和订单金额的一致,卡类订单时验证成功金额不可超过订单金额
		AdditionalInfo,// 订单附加信息 保留 等同于商户提交的附加字段
		SuccTime,// 交易成功时间 字符串 交易成功，订单完成的时间.格式：年年年年月月日日时时分分秒秒
		
		/**
		 * {参数}代表参数的具体值
		MD5(MemberID={MemberID}~|~TerminalID={Term
		inalID}~|~TransID={TransID}~|~Result={Resu
		lt}~|~ResultDesc={resultDesc}~|~FactMoney=
		{factMoney}~|~AdditionalInfo={additionalIn
		fo}~|~SuccTime={SuccTime}~|~ Md5Sign={ 密
		钥})
		测试密钥： abcdefg
		 */
		Md5Sign,// 交易签名 规则生成 将返回关键数据进行拼接，经 MD5 加密生成并转.
		;
		
		

	}
	
	private Map<String,String> applyParams = new HashMap<String,String>();
	
	private String payUrl;
	//private Map<String,String> receiveParams = new HashMap<String,String>();
	
	private String key;
	
	
	public String getKey() {
		return key;
	}

	public void setKey(String key) {
		this.key = key;
	}

	public Map<String, String> getApplyParams() {
		return applyParams;
	}

	public void setApplyParams(Map<String, String> applyParams) {
		this.applyParams = applyParams;
	}

	public String getPayUrl() {
		return payUrl;
	}

	public void setPayUrl(String payUrl) {
		this.payUrl = payUrl;
	}

	/*public Map<String, String> getReceiveParams() {
		return receiveParams;
	}

	public void setReceiveParams(Map<String, String> receiveParams) {
		this.receiveParams = receiveParams;
	}*/

	
	
	
	/*private String MemberID;
	private String TerminalID;
	private String InterfaceVersion;
	private String KeyType;
	private String PayID;
	private String TradeDate;
	private String TransID;
	private String OrderMoney;
	private String ProductName;
	private String Amount;
	private String Username;
	private String AdditionalInfo;
	private String NoticeType;
	private String PageUrl;
	private String ReturnUrl;
	private String Md5Sign;
	*/
	
	
	
}
